在上一篇文章提到對話系統的管理,今天我們要來說明主畫面設定及場景資料轉換。
需要注意的是,介面的素材圖需要將背景及按鈕分別輸出喔!
目錄
素材圖
介面設置
場景轉換
開始畫面-背景 | 關卡介面-背景 |
---|---|
開始畫面-按鈕 | 關卡介面-按鈕 |
在Scene中使用Canvas加入主畫面介面,並將開始按鈕放上正確位置
另外開一個新場景,並將關卡介面圖放入Scene中
將所有關卡按鈕放置正確的位置,按鈕名稱依照關卡順序取名
將所有需要切換的場景在File>Build Settings>Scenes In Build中加入
新增SceneManager()來管理所有場景,在SceneTrans()中使用string傳關卡名稱
public void SceneSwitch(string _SceneName)
{
SceneManager.LoadScene(_SceneName);
}
在Scene按鈕中,加上場景切換功能
我們的關卡希望可以完成一關,才可以解鎖下一關,因此需要設立一個變數來判斷關卡是否解鎖。
在LevelSelection()中加入bool,來判斷關卡目前狀態
private bool unlocked; //預設為fasle
在PressSelection()中:
public void PressSelection(string _LevelName)
{
if (unlocked)
{
SceneManager.LoadScene(_LevelName);
}
}
在Scene中,為每個按鈕都加上場景切換功能
在每個遊戲關卡中加入SingleLevel()中,使用PlayerPrefs儲存關卡數值
public levelIndex;
public Score;
public void PressedFinished()
{
PlayerPrefs.SetInt("Lv" + levelIndex, Score);
}
在LevelSelectioon()中讀取PlayerPrefs數值,更新關卡狀態
private void UpdateLevelStatus()
{
int previousLevelNum = int.Parse(gameObject.name) -1;
if(PlayerPrefs.GetInt("Lv" + PreviousLevelNum) > 0) //上一個關卡分數是否大於0
{
unlocked = true;
}
}
並在Update()中加入
UpdateLevelStatus()
如此一來便完成介面及場景切換功能嘍!下一篇將會為各位介紹我們所用到的專案管理工具,明天見!